Scons
scons-wa softwär tu assist softwär applaikeiçion dè kompaileiçion. | latest preview version = | latest preview date = | frequently updated = | programming language = Python | operating system = Cross-platform | platform = | size = | language = | status = | genre = Software development tools | license = MIT License | website = }} SCons is a computer software construction tool that automatically analyzes source code file dependencies and operating system adaptation requirements from a software project description and generates final binary executables for installation on the target operating system platform. Its function is analogous to the traditional GNU build system based on the make utility and the autoconf tools. SCons uses the Python general purpose programming language as a foundation, so that all software project configurations and build process implementations are Python scripts. Major features * Configuration files are Python scripts, which means that user-written builds have access to a complete general-purpose programming language. * Automatic dependency analysis built-in for C, C++ and Fortran. Dependency analysis is extensible through user-defined dependency scanners for other languages or file types. Unlike the GNU Compiler Collection's (GCC) built-in dependency analysis, it uses a regular expression scan for included source files. * Built-in support for C, C++, D, Java, Fortran, Objective-C, Yacc, Lex, Qt and SWIG, as well as TeX and LaTeX documents. Other languages or file types can be supported through user-defined Builders. * Building from central repositories of source code and pre-built targets. * Built-in support for fetching source files from revision control systems, such as SCCS, RCS, CVS, Subversion, BitKeeper and Perforce. * Built-in support for Microsoft Visual Studio, including generation of .dsp, .dsw, .sln and .vcproj files. * Detection of file content changes using MD5 signatures; optional, configurable support for traditional timestamps. * Support for parallel builds which maintains a specified number of jobs running simultaneously regardless of directory hierarchy. * Integrated Autoconf-like support for finding #include files, libraries, functions and typedefs. * Global view of all dependencies, so multiple build passes or reordering targets is not required. * Ability to share built files in a cache to speed up multiple builds - like ccache but for any type of target file, not just C/C++ compilation. * Designed from the ground up for cross-platform builds, and known to work on POSIX systems (including GNU/Linux, IBM AIX and OS/2, *BSD Unices, HP-UX, SGI IRIX, Solaris), MS Windows NT, Apple OS X. History and related projects SCons software history started with the Cons software construction utility created by Bob Sidebotham in 1999. . Cons was written in the Perl language. It served as a base for the ScCons build tool, a design which won the Software Carpentry project SC Build competition in August 2000. ScCons was the foundation for SCons. SCons inspired the creation of Waf, formerly known as SCons/BKsys, which emerged in the KDE community. For some time, there were plans to use it as the build tool for KDE 4 and beyond, but that effort was abandoned in favor of CMake. Examples The following example is a very simple SConstruct file that compiles the C program file hello-world.c using the default platform compiler: Program('hello-world.c') The following is a more complex example that creates an environment used to build the program hello: env = Environment() env.Append(CPPFLAGS='-Wall','-g') env.Program('hello', 'main.c') Notable applications using Scons * The Battle for Wesnoth * Battlefield 1942 * Blender * Csound * Doom 3 * FCEUX * gem5 . * gpsd * GtkRadiant * Madagascar * Mixxx * MongoDB * Nullsoft Scriptable Install System * NumPy and SciPy * OpenNebula * OSRM * SuperCollider * VMware * Formerly V8 (JavaScript engine) * Wolfenstein: Enemy Territory * XORP, MCA2 * GGT Päkeijs $ sudo apt-get install scons Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: * scons 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 542 kB of archives. After this operation, 2,091 kB of additional disk space will be used. #Get: http://hk.archive.ubuntu.com/ubuntu/ trusty/main scons all 2.3.0-2 kB Fetched 542 kB in 2s (255 kB/s) Selecting previously unselected package scons. (Reading database ... 319222 files and directories currently installed.) Preparing to unpack .../archives/scons_2.3.0-2_all.deb ... Unpacking scons (2.3.0-2) ... Processing triggers for man-db (2.6.7.1-1ubuntu1) ... Setting up scons (2.3.0-2) ... See also *Buildout *GNU build system *CMake *Waf References External links * * * . Category:Compiling tools Category:Build automation Category:Free software programmed in Python Category:Software using the MIT license